package com.shunda.pay.dto;

import java.util.List;
import java.util.Objects;

/**
 * 微信商家转账到零钱 DTO
 */
public class WxTransferDto {

    /**
     * 油站ID
     */
    private Long deptId;
    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 提现方（油站：1，用户：2）
     */
    private String type;

    /**
     * 【商户单号】 商户系统内部的商家单号，要求此参数只能由数字、大小写字母组成，在商户系统内部唯一
     */
    private String outBillNo;

    /**
     * 【收款用户OpenID】 用户在商户appid下的唯一标识。
     */
    private String openId;

    /**
     * 【收款用户姓名】 收款方真实姓名
     */
    private String userName;

    /**
     * 转账金额（单位：分）
     */
    private Long amount;


    public Long getDeptId() {
        return deptId;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getOpenId() {
        return openId;
    }

    public void setOpenId(String openId) {
        this.openId = openId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public Long getAmount() {
        return amount;
    }

    public void setAmount(Long amount) {
        this.amount = amount;
    }

    public String getOutBillNo() {
        return outBillNo;
    }

    public void setOutBillNo(String outBillNo) {
        this.outBillNo = outBillNo;
    }

    @Override
    public String toString() {
        return "WxTransferDto{" +
                "deptId=" + deptId +
                ", userId=" + userId +
                ", type='" + type + '\'' +
                ", outBillNo='" + outBillNo + '\'' +
                ", openId='" + openId + '\'' +
                ", userName='" + userName + '\'' +
                ", amount=" + amount +
                '}';
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof WxTransferDto)) return false;
        WxTransferDto that = (WxTransferDto) o;
        return Objects.equals(deptId, that.deptId) && Objects.equals(userId, that.userId) && Objects.equals(type, that.type) && Objects.equals(outBillNo, that.outBillNo) && Objects.equals(openId, that.openId) && Objects.equals(userName, that.userName) && Objects.equals(amount, that.amount);
    }

    @Override
    public int hashCode() {
        return Objects.hash(deptId, userId, type, outBillNo, openId, userName, amount);
    }
}
